Computer-readable storage medium storing game program, game apparatus, and processing method

ABSTRACT

First, based on the position of a target in a taken image included in imaging information, a pointing position which an operating device points to is calculated. Next, a change amount of the pointing position within a predetermined time is calculated. Then, whether or not the change amount of the pointing position satisfies a first condition is determined. As a result, when it is determined that the change amount of the pointing position satisfies the first condition, predetermined processing is executed in which the pointing position within the predetermined time or a position calculated based on pointing positions within the predetermined time is set as a start point.

CROSS REFERENCE TO RELATED APPLICATION

The disclosure of Japanese Patent Application No. 2008-255560, filed onSep. 30, 2008, is incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a computer-readable storage mediumstoring a game program, a game apparatus, and a processing method, andmore particularly, to a computer-readable storage medium storing a gameprogram, a game apparatus, and a processing method for executingpredetermined processing based on imaging information which is obtainedby imaging means, of an operating device, for taking an image of atleast one target whose image is to be taken and which imaginginformation is transmitted from the operating device.

2. Description of the Background Art

Conventionally, there is known a game apparatus which starts apredetermined motion based on an operation with an input device equippedwith an image pickup device (e.g. “DENGEKI DS&Wii Style Vol. 2”, ASCIIMEDIA WORKS Inc., released on Aug. 1, 2007, P28 (hereinafter, referredto as Non-Patent Document 1), “Shuukan Famitsu Aug. 3, 2007 edition”,ENTERBRAIN INC., released on Aug. 3, 2007, P152 (hereinafter, referredto as Non-Patent Document 2), “Kadukeusu Z Futatsu No Choushittouinstruction manual”, ATLUS CO., LTD., released on Dec. 2, 2006, 225(hereinafter, referred to as Non-Patent Document 3)). In games disclosedin the Non-Patent Documents 1 and 2, an input device is used like asword, and an enemy object displayed on a screen is cut by swinging theinput device. By swinging the input device vertically, horizontally, andobliquely, three types of cutting attacks, “vertical cutting”,“horizontal cutting”, and “oblique cutting”, can be performed accordingto the swinging direction. A trajectory of the sword in each cuttingattack has an angle in accordance with the vertical, horizontal, oroblique swinging of the input device. When performing an operation for acutting attack, the position of a “pointer” displayed on the screen canbe locked by pressing a predetermined button (pointer lock). When theinput device is swung in a state where the position of the pointer islocked, the position of the pointer becomes the center of a swordtrajectory. When the pointer is not locked, a sword trajectory passesthrough the center of the screen.

Meanwhile, a game disclosed in the Non-Patent Document 3 is a surgerygame in which an input device is used like a scalpel. For example, whenthe trunk of a patient is displayed on a screen and an operation forincising skin is performed, a marker indicating apart to be incised isdisplayed on the screen. Then, the operation for incision can beperformed by moving a cursor along the marker with a button of acontroller pressed. If the cursor can be moved not far from the marker,the incision is successfully made.

However, the above game apparatus have the following problems. In thegames disclosed in the Non-Patent Documents 1 and 2, when performing anoperation for a cutting attack, if the pointer is not locked, a swordtrajectory always passes through the center of the screen. Thus, if acutting attack with a sword trajectory which does not pass through thecenter of the screen is desired, the pointer lock is necessary. In otherwords, a two-step operation need to be performed that a button operationis performed for the pointer lock and then the input device is swung.Therefore, unless an operation for the pointer lock is performed, it isimpossible to cut a desired position. Further, because such a two-stepoperation is needed, there is a problem that a cutting attack operationcannot be performed quickly. Further, in the games disclosed in theNon-Patent Documents 1 and 2, regardless of the length and the speed ofswinging by a player, the sword trajectory of a cutting attack alwaysextends linearly from end to end of the screen. In other words, for aneffect (animation) for the sword trajectory which is to be displayed atthe cutting attack, a pattern in accordance with a direction ofvertical, horizontal, or oblique swinging is merely readout from amongsome predetermined sword trajectory patterns, and reproduced. Thus, itis impossible to perform an operation for cutting a part of the screen,not from end to end of the screen. Therefore, there is a problem that acutting attack operation lacks a degree of freedom.

Meanwhile, in the game disclosed in the Non-Patent Document 3, it ispossible to perform an operation for cutting only a part of the screen.However, the operation for incision in the game is an operation ofmoving the cursor along the marker displayed on the screen, and aposition desired by a player cannot be freely cut by the operation forincision. Thus, similarly as in the games disclosed in the Non-PatentDocuments 1 and 2, there is a problem that an operation for cutting adesired position lacks a degree of freedom.

SUMMARY OF THE INVENTION

Therefore, an object of the present invention is to provide acomputer-readable storage medium storing a game program, a gameapparatus, and a processing method which enable operations with a highdegree of freedom.

The present invention has the following features to attain the objectmentioned above. It is noted that reference characters and supplementaryexplanations in parentheses are merely provided to facilitate theunderstanding of the present invention in relation to thelater-described embodiment, rather than limiting the scope of thepresent invention in any way.

A first aspect of the present invention is directed to acomputer-readable storage medium storing a game program executed by acomputer of a game apparatus for executing predetermined processingbased on imaging information which is obtained by imaging means, of anoperating device, for taking an image of at least one target whose imageis to be taken and which imaging information is transmitted from theoperating device. The game program causes the computer to function aspointing position calculation means (S3), change amount calculationmeans (S6), first determination means (S7), and processing start means(S10 to S13). The pointing position calculation means is means forrepeatedly calculating a pointing position which the operating devicepoints to based on a position of the target in a taken image included inthe imaging information. The change amount calculation means is meansfor repeatedly calculating a change amount of the pointing positionwithin a predetermined time. The first determination means is means fordetermining whether or not the change amount of the pointing positionwithin the predetermined time satisfies a first condition. Theprocessing start means is means for, when the first determination meansdetermines that the change amount of the pointing position within thepredetermined time satisfies the first condition, starting predeterminedprocessing in which the pointing position within the predetermined timeor a position calculated based on pointing positions within thepredetermined time is set as a start point.

According to the first aspect, a position desired by a player is set asa start point, and processing can be started when the change amount ofthe pointing position of the operating device satisfies a condition,thereby providing the player with a game having operability with a highdegree of freedom.

In a second aspect based on the first aspect, the game program causesthe computer to further function as second determination means (S18) andprocessing end means (S19 to S22). The second determination means ismeans for, after the predetermined processing is started by theprocessing start means, determining whether or not the change amount ofthe pointing position within the predetermined time which is calculatedby the change amount calculation means satisfies a second condition. Theprocessing end means is means for, when the second determination meansdetermines that the change amount of the pointing position satisfies thesecond condition, ending the predetermined processing started by theprocessing start means.

According to the second aspect, an arbitrary position can be set as anend point for the processing, thereby providing operability with a highdegree of freedom.

In a third aspect based an the first aspect, the target is locatedadjacent to a predetermined display device. The game program causes thecomputer to further function as in-screen pointing determination means(S5) for determining whether or not the position of the target in thetaken image exists in a screen correspondence range which is assigned toa screen of the display device.

According to the third aspect, it is possible to execute thepredetermined processing in which a position in the screen desired bythe player is set as a start point.

In a fourth aspect based on the third aspect, when the in-screenpointing determination means determines that the position of the targetin the taken image exists in the screen correspondence range and thefirst determination means determines that the change amount of thepointing position satisfies the first condition, the processing startmeans starts the predetermined processing.

According to the fourth aspect, it is possible to set a position in thescreen desired by the player as a start point, and to execute thepredetermined processing when the change amount of the pointing positionof the operating device satisfies a condition.

In a fifth aspect based on the third aspect, when the in-screen pointingdetermination means determines that the position of the target in thetaken image does not exist in the screen correspondence range after theprocessing start means starts the predetermined processing, theprocessing end means ends the predetermined processing started by theprocessing start means.

According to the fifth aspect, when the operating device points to aposition out of the screen after the predetermined processing is startedwith a position in the screen desired by the player being set as a startpoint, the processing can be ended, thereby enhancing the operability.

In a sixth aspect based on the second aspect, the game program causesthe computer to further function as object drawing means (S13) for,during a period after the predetermined processing is started by theprocessing start means until the predetermined processing is ended bythe processing end means, drawing a predetermined object at a positionin the screen corresponding to the pointing position calculated by thepointing position calculation means.

In a seventh aspect based on the second aspect, the game program causesthe computer to further function as trajectory drawing means (S13) for,during a period after the predetermined processing is started by theprocessing start means until the predetermined processing is ended bythe processing end means, drawing a trajectory connecting inchronological order pointing positions calculated by the pointingposition calculation means.

According to the sixth and seventh aspects, it can be made easy for theplayer to know a position in the screen for which the processing isexecuted.

In an eighth aspect based on the first aspect, the game program causesthe computer to further function as hit determination means (S41) andhit processing execution means (S42). The hit determination means ismeans for, during a period after the predetermined processing is starteduntil the predetermined processing is ended, determining whether or nota predetermined object exists at a position in a virtual game spacecorresponding to the pointing position. The hit processing executionmeans is means for, when the hit determination means determines that thepredetermined object exists at the position in the virtual game spacecorresponding to the pointing position, executing hit processing whichis predetermined processing executed for the predetermined object.

According to the eighth aspect, after the predetermined processing isstarted by the processing start means, different processing can befurther executed for the object through which the pointing position haspassed. Thus, for example, realistic feeling of an operation for“cutting” a predetermined object is enhanced, and hence the fun of thegame can be enhanced.

In a ninth aspect based on the eighth aspect, the hit processingexecution means includes continuation parameter change means (S42) for,when the hit determination means determines that the predeterminedobject exists, changing a value of a continuation parameter which is aparameter indicative of whether or not to continue the predeterminedprocessing started by the processing start means. The game programcauses the computer to further function as third determination means(S51) for, after the predetermined processing is started by theprocessing start means, determining whether or not the value of thecontinuation parameter satisfies a third condition. When the thirddetermination means determines that the value of the continuationparameter satisfies the third condition, the processing end means endsthe predetermined processing started by the processing start means.

According to the ninth aspect, it is possible to end the processingstarted by the processing start means even when the change amount of thepointing position does not satisfy the second condition, therebyenhancing the fun of the game.

A tenth aspect of the present invention is directed to a game apparatus(3) for executing predetermined processing based on imaging informationwhich is obtained by imaging means, of an operating device (7), fortaking an image of at least one target (8) whose image is to be takenand which imaging information is transmitted from the operating device.The game apparatus comprises pointing position calculation means (10),change amount calculation means (10), first determination means (10),and processing start means (10). The pointing position calculation meansis means for repeatedly calculating a pointing position which theoperating device points to based on a position of the target in a takenimage included in the imaging information. The change amount calculationmeans is means for repeatedly calculating a change amount of thepointing position within a predetermined time. The first determinationmeans is means for determining whether or not the change amount of thepointing position within the predetermined time satisfies a firstcondition. The processing start means is means for, when the firstdetermination means determines that the change amount of the pointingposition within the predetermined time satisfies the first condition,starting predetermined processing in which the pointing position withinthe predetermined time or a position calculated based on pointingpositions within the predetermined time is set as a start point.

An eleventh aspect of the present invention is directed to a processingmethod for executing predetermined processing based on imaginginformation which is obtained by imaging means, of an operating device,for taking an image of at least one target whose image is to be takenand which imaging information is transmitted from the operating device.The processing method comprises a pointing position calculation step(S3), a change amount calculation step (S6), a first determination step(S7), and a processing start step (S10 to S13). At the pointing positioncalculation step, a pointing position which the operating device pointsto is repeatedly calculated based on a position of the target in a takenimage included in the imaging information. At the change amountcalculation step, a change amount of the pointing position within apredetermined time is repeatedly calculated. At the first determinationstep, whether or not the change amount of the pointing position withinthe predetermined time satisfies a first condition is determined. At theprocessing start step, when it is determined at the first determinationstep that the change amount of the pointing position within thepredetermined time satisfies the first condition, predeterminedprocessing is started with the pointing position within thepredetermined time or a position calculated based on pointing positionswithin the predetermined time being set as a start point.

According to the tenth and eleventh aspects, the same advantageouseffect as the first aspect can be obtained.

According to the present invention, because a start point in the screenfor the predetermined processing can be determined based on the changeamount of the pointing position, it is possible to provide a game havingoperability with a high degree of freedom.

These and other objects, features, aspects and advantages of the presentinvention will become more apparent from the following detaileddescription of the present invention when taken in conjunction with theaccompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an external view of a game system 1 according to an embodimentof the present invention;

FIG. 2 is a functional block diagram of a game apparatus main body 3 inFIG. 1;

FIG. 3 is a perspective view of a controller T in FIG. 1 seen from a toprear side thereof;

FIG. 4 is a perspective view of the controller 7 in FIG. 3 seen from abottom front side thereof;

FIG. 5 is a perspective view showing a state where an upper housing ofthe controller 7 in FIG. 3 is removed;

FIG. 6 is a perspective view showing a state where a lower housing ofthe controller 7 in FIG. 3 is removed;

FIG. 7 is a block diagram showing a configuration of the controller 7 inFIG. 3;

FIG. 8 is a view showing an example of a taken image;

FIG. 9 shows an example of a game screen assumed in the presentembodiment;

FIG. 10 is a view when an extended controller 36 is connected to aconnector 73 of the controller 7;

FIG. 11 is a view showing an example of a manner of holding thecontroller;

FIG. 12 is a view for explaining a screen scrolling operation;

FIG. 13 is a view for explaining a screen scrolling operation;

FIG. 14 is a view for explaining a screen scrolling operation;

FIG. 15 is a view showing the example of the cutting attack operation;

FIG. 16 is a view for explaining a principle of processing for a cuttingattack operation;

FIG. 17 is a view for explaining the principle of processing for acutting attack operation;

FIG. 18 is a view for explaining the principle of processing for acutting attack operation;

FIG. 19 is a view for explaining the principle of processing for acutting attack operation;

FIG. 20 is a view for explaining the principle of processing for acutting attack operation;

FIG. 21 is a view for explaining the principle of processing for acutting attack operation;

FIG. 22 is a view for explaining the principle of processing for acutting attack operation;

FIG. 23 is a view for explaining the principle of processing for acutting attack operation;

FIG. 24 is a view for explaining the principle of processing for acutting attack operation;

FIG. 25 shows an example of a game screen;

FIG. 26 is a view for explaining the principle of processing for acutting attack operation;

FIG. 27 shows an example of a game screen;

FIG. 28 is a view showing a memory map of a main memory 12 in a gameapparatus main body 3;

FIG. 29 is a flow char, showing game processing according to the presentembodiment;

FIG. 30 is a flow chart showing the game processing according to thepresent embodiment;

FIG. 31 is a flow chart showing a detailed operation in change amountcalculation processing at steps S6 and S17 in FIG. 29;

FIG. 32 is a flow chart showing a detailed operation in hitdetermination processing at a step S14 in FIG. 30;

FIG. 33 shows an example of a game screen; and

FIG. 34 is a flow chart showing game processing in the case of using apenetrating power parameter.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

The following will describe an embodiment of the present invention withreference to the drawings. It is noted that the present invention is notlimited by the embodiment.

(Whole Configuration of Game System)

With reference to FIG. 1, the following will describe a game system 1including a game apparatus according to the embodiment of the presentinvention. FIG. 1 is an external view of the game system 1. Hereinafter,the game system 1 using a stationary game apparatus will be used as anexample, and the game apparatus and a game program according to thepresent embodiment will be described. As shown in FIG. 1, the gamesystem 1 includes a television receiver (hereinafter, referred to merelyas a television) 2, a game apparatus main body 3, an optical disc 4, acontroller 7, and a marker section 8. The game system 1 executes gameprocessing at the game apparatus main body 3 in accordance with a gameoperation using the controller 7.

The optical disc 4 as an example of an exchangeable information storagemedium replaceably used with respect to the game apparatus main body 3is detachably inserted in the game apparatus main body 3. The opticaldisc 4 stores a game program which is to be executed by the gameapparatus main body 3. The game apparatus main body 3 has an insertionslot at its front surface. The game apparatus main body 3 reads andexecutes the game program stored in the optical disc 4 which is insertedin the insertion slot for executing the game processing.

The television 2 as an example of a display device is connected to thegame apparatus main body 3 via a connection cord. The television 2displays game images which are obtained as the result of the gameprocessing executed by the game apparatus main body 3. The markersection 8 is mounted adjacent to the screen of the television 2 (on theupper surface of the screen in FIG. 1). The marker section 8 has amarker BR and a marker 82 at its opposite ends, respectively. The marker8R has one or more infrared LEDs which output infrared lights forwardfrom the television 2. The marker 8L has the same configuration as themarker BR. The marker section 8 is connected to the game apparatus mainbody 3, and the game apparatus main body 3 is capable of controllingillumination of each infrared LED of the marker section 8.

The controller 7 is an input device which provides the game apparatusmain body 3 with operation data which indicates contents of an operationmade to the controller 7. The controller 7 is connected to the gameapparatus main body 3 by wireless communication. In the presentembodiment, the technology of, for example, Bluetooth (registeredtrademark) is used for the wireless communication between the controller7 and the game apparatus main body 3. It is noted that in an alternativeembodiment, the controller 7 may be connected to the game apparatus mainbody 3 via a wire.

(Internal Configuration of Game Apparatus Main Body 3)

The following will describe an internal configuration of the gameapparatus main body 3 with reference to FIG. 2. FIG. 2 is a blockdiagram showing a configuration of the game apparatus main body 3. Thegame apparatus main body 3 includes a CPU 10, a system LSI 11, anexternal main memory 12, a ROM/RTC 13, a disc drive 14, an AV-IC 15, andthe like.

The CPU 10 executes the game processing by executing the game programstored in the optical disc 4, and functions as a game processor. The CPU10 is connected to the system LSI 11. In addition, the external mainmemory 12, the ROM/RTC 13, the disc drive 14, and the AV-IC 15 areconnected to the system LSI 11. The system LSI 11 performs processingsuch as control of data transfer between the system LSI 11 and eachcomponent connected to the system LSI 11, generation of an image to bedisplayed, obtaining data from an external device, and the like. Aninternal configuration of the system LSI 11 will be described later. Thevolatile external main memory 12 stores a program such as the gameprogram read from the optical disc 4, a game program read from a flashmemory 17, and the like, and various data, and is used as a work regionand a buffer region for the CPU 10. The ROM/RTC 13 includes a ROM(so-called boot ROM) which stores a program for starting up the gameapparatus main body 3, and a clock circuit (RTC: Real Time Clock) forcounting time. The disc drive 14 reads program data and texture datafrom the optical disc 4, and writes these data into an internal mainmemory 11 e, which will be described later, or the external main memory12.

The system LSI 11 is provided with an input-output processor 11 a, a GPU(Graphics Processor Unit) 11 b, a DSP (Digital Signal Processor) 11 c, aVRAM 11 d, and the internal main memory 11 e. Although not shown in thedrawings, these components 11 a to 11 e are connected to each other viaan internal bus.

The GPU 11 b forms apart of drawing means, and generates an imageaccording to a graphics command (command for generating graphics) fromthe CPU 10. More specifically, the GPU 11 b performs computingprocessing required for displaying 3D graphics, for example, performsprocessing of coordinate conversion from 3D coordinates into 2Dcoordinates which is performed prior to rendering, and processing ofrendering such as attaching texture, thereby generating game image data.In addition to the graphics command, the CPU 10 provides the GPU 11 bwith an image generation program required for generating the game imagedata. The VRAM 11 d stores data, such as polygon data and texture data,which are required for the GPU 11 b to execute the graphics command. Ingenerating an image, the GPU 11 d creates the image data using the datastored in the VRAM 11 d.

The DSP 11 c functions as an audio processor, and generates audio datausing sound data and sound waveform (tone color) data which are storedin the internal main memory 11 e and the external main memory 12. Likethe external main memory 12, the internal main memory 11 e stores aprogram and various data, and is used as a work region and a bufferregion for the CPU 10.

The image data and the sound data generated thus are read by the AV-IC15. The AV-IC 15 outputs the image data to the television 2 via an AVconnector 16, and the sound data to speakers 2 a built in the television2. Thus, an image is displayed on the television 2, and sound isoutputted from the speakers 2 a.

The input-output processor (I/O process) 11 a performs transmission andreception of data to and from each component connected to theinput-output processor 11 a, and downloads data from an external device.The input-output processor 11 a is connected to the flash memory 17, awireless communication module 18, a wireless controller module 19, anextended connector 20, and a memory card connector 21. An antenna 22 isconnected to the wireless communication module 18, and an antenna 23 tothe wireless controller module 19.

The input-output processor 11 a is connected to a network via thewireless communication module 18 and the antenna 22, so that theinput-output processor 11 a is communicable with another game apparatusconnected to the network and various servers connected to the network.The input-output processor 11 a periodically accesses the flash memory17 to detect whether there are data required to be transmitted to thenetwork. If there are such data, the input-output processor 11 atransmits the data to the network via the wireless communication module18 and the antenna 22. The input-output processor 11 a receives datatransmitted from the other game apparatus and data downloaded from adownload server via the network, the antenna 22 and the wirelesscommunication module 18, and stores the received data in the flashmemory 17. The CPU 10 reads the data stored in the flash memory 17 byexecuting the game program, and uses the data in the game program. Inaddition to the data transmitted or received between the game apparatusmain body 3 and the other game apparatus and various servers, the flashmemory 17 may store saved data (result data or midstream data of thegame) of the game played using the game apparatus main body 3.

The input-output processor 11 a receives operation data transmitted fromthe controller 7 via the antenna 23 and the wireless controller module19, and stores (temporarily stores) the operation data in the bufferregion of the internal main memory 11 e or the external main memory 12.

In addition, the extended connector 20 and the memory card connector 21are connected to the input-output processor 11 a. The extended connector20 is a connector for an interface such as USE and SCSI, and thecommunication with the network is enabled by connecting a medium such asan external storage medium, a peripheral device such as anothercontroller, or a wired connector for communication to the extendedconnector 20 instead of the wireless communication module 18. The memorycard connector 21 is a connector for connecting thereto an externalstorage medium such as a memory card. For example, the input-outputprocessor 11 a accesses the external storage medium via the extendedconnector 20 and the memory card connector 21 for storing data in theexternal storage medium and reading data from the external storagemedium.

The game apparatus main body 3 is provided with a power button 24, areset button 25, and an eject button 26. The power button 24 and thereset button 25 are connected to the system LSI 11. When the powerbutton 24 is turned on, electric power is supplied to each component ofthe game apparatus main body 3 via an AC adaptor (not shown). In thestate where the power has been turned on, the power button 24 is pressedto shift to a low power standby mode. Even in the low power standbymode, electric power is supplied to the game apparatus main body 3.Because electric power is always supplied to the game apparatus mainbody 3, the game apparatus main body 3 can be always connected to anetwork such as the Internet even in this state. For turning off thepower once the power is turned on, the power button 24 is pressed for apredetermined period of time or longer. The reset button 25 is pressedto cause the system LSI 11 to restart a boot program of the gameapparatus main body 3. The eject button 26 is connected to the discdrive 14. The eject button 26 is pressed to eject the optical disc 4from the disc drive 14.

The following will describe the controller with reference to FIGS. 3 and4. FIG. 3 is a perspective view of the controller 7 seen from a top rearside thereof, and FIG. 4 is a perspective view of the controller 7 seenfrom a bottom front side thereof.

As shown in FIGS. 3 and 4, the controller 7 includes a housing 71 and anoperation section 72 including a plurality of operation buttons whichare provided on surfaces of the housing 71. The housing 71 of thepresent embodiment has a generally parallelepiped shape extending in alongitudinal direction from front to rear. The overall size of thehousing 71 is small enough to be held by one hand of an adult or even achild, and, for example, the housing 71 is formed by plastic molding.

At the center of a front part of a top surface of the housing 71, across key 72 a is provided. The cross key 72 a is a cross-shapedfour-direction push switch. The cross key 72 a includes operationportions corresponding to four directions (front, rear, right and left),which are respectively located on cross-shaped projecting portionsarranged at intervals of 90 degrees. A player selects one of the front,rear, right and left directions by pressing one of the operationportions of the cross key 72 a. Through an operation of the cross key 72a, the player can, for example, indicate a direction in which a playerobject or the like appearing in a virtual game world is to move, orselect an option from a plurality of options.

The cross key 72 a is an operation section for outputting an operationsignal in accordance with the above-described direction input operationperformed by the player. Such an operation section may be provided inanother form. For example, the cross key 72 a may be replaced with anoperation section which includes four push switches arranged in a squareand which outputs an operation signal in accordance with the push buttonpressed by the player. In addition to the four push switches of theoperation section, a center switch may be provided at the center of thefour push switches to form a composite operation section including thefour push switches and the center switch. Alternatively, the cross key72 a may be replaced with an operation section which includes aninclinable stick (or joystick) projecting from a top surface of thehousing 71 and which outputs an operation signal in accordance with aninclining direction of the stick. Still alternatively, the cross key 72a may be replaced with an operation section which includes a disc-shapedand horizontally slidable member and which outputs an operation signalin accordance with a sliding direction of the disc-shaped member. Stillalternatively, the cross key 72 a may be replaced with a touch pad.

Behind the cross key 72 a on the top surface of the housing 71, aplurality of operation buttons 72 b to 72 g are provided. The operationbuttons 72 b to 72 g are each an operation section for, when the playerpresses a head thereof, outputting a corresponding operation signal. Forexample, functions as a number one button, a number two button and an Abutton are assigned to the operation buttons 72 b to 72 d, respectively.Also, functions as a minus button, a home button and a plus button areassigned to the operation buttons 72 e to 72 g, respectively. Operationfunctions are assigned to the operation buttons 72 b to 72 g inaccordance with the game program executed by the game apparatus mainbody 3. In an exemplary arrangement shown in FIG. 3, the operationbuttons 72 b to 72 d are arranged in a line at the center in afront-rear direction on the top surface of the housing 71. The operationbuttons 72 e to 72 g are arranged on the top surface of the housing 71in a line in a left-right direction between the operation buttons 72 band 72 d. The operation button 72 f has a top surface thereof buried inthe top surface of the housing 71, so as not to be inadvertently pressedby the player.

In front of the cross key 72 a on the top surface of the housing 71, anoperation button 72 h is provided. The operation button 72 h is a powerswitch for turning on and off the power to the game apparatus main body3 by remote control. The operation button 72 h also has a top surfacethereof buried in the top surface of the housing 71, so as not to beinadvertently pressed by the player.

Behind the operation button 72 c on the top surface of the housing 71, aplurality of LEDs 702 are provided. Here, a controller type (number) isassigned to the controller 7 such that the controller 7 isdistinguishable from the other controllers 7. The LEDs 702 are used for,for example, informing the player of the controller type which iscurrently set for the controller 7. More specifically, when thecontroller 7 transmits transmission data to the game apparatus main body3, one of the plurality of LEDs 702 which corresponds to the controllertype of the controller 7 is lit up.

On the top surface of the housing 71, a plurality of holes is providedbetween the operation button 72 b and the operation buttons 72 e to 72 gfor emitting sound from a speaker (a speaker 706 in FIG. 5), which willbe described later, to the outside therethrough.

On a bottom surface of the housing 71, a recessed portion is formed. Asdescribed later in detail, the recessed portion is formed in a positionin which an index finger or middle finger of the player is located whenthe player holds the controller 7 such that the front surface thereoffaces the makers 8L and 8R. On a slope surface of the recessed portion,an operation button 72 i is provided. The operation button 72 i is anoperation section functioning as, for example, a B button.

On a front surface of the housing 71, an image pickup element 743constituting a part of an imaging information calculation section 74 isprovided. The imaging information calculation section 74 is a system foranalyzing image data of an image taken by the controller 7, therebyidentifying an area having a high brightness in the image and detectinga position of a center of gravity, a size and the like of the area. Theimaging information calculation section 74 has, for example, a maximumsampling period of about 200 frames/sec, and therefore can trace andanalyze even a relatively fast motion of the controller 7. Aconfiguration of the imaging information calculation section 74 will bedescribed later in detail. On a rear surface of the housing 71, aconnector 73 is provided. The connector 73 is, for example, an edgeconnector, and is used for engaging and connecting the controller 7 witha connection cable.

For giving a more specific description, a coordinate system set withrespect to the controller 7 will be defined. As shown in FIGS. 3 and 4,mutually perpendicular x-axis, y-axis, and z-axis are defined withrespect to the controller 7. More specifically, the longitudinaldirection of the housing 71 or the front-rear direction of thecontroller 7 corresponds to z-axis, and the direction toward the frontsurface of the controller 7 (the surface in which the imaginginformation calculation section 74 is provided) is a positive directionof z-axis. The up-down direction of the controller 7 corresponds toy-axis, and the direction toward the top surface of the housing 71 (thesurface on which the operation button 72 a is provided) is a positivedirection of y-axis. The left-right direction of the controller 7corresponds to x-axis, and the direction toward the right side surfacehousing 71 (the side surface which is not shown in FIG. 3 but shown inFIG. 4) is a positive direction of x-axis.

The following will describe an internal structure of the controller 7with reference to FIGS. 5 and 6. FIG. 5 is a perspective view showing astate where an upper housing (a part of the housing 71) of thecontroller 7 is removed as seen from a rear side thereof. FIG. 6 is aperspective view showing a state where a lower housing (a part of thehousing 71) of the controller 7 is removed as seen from a front sidethereof. FIG. 6 shows a reverse side of a substrate 700 shown in FIG. 5.

As shown in FIG. 5, the substrate 700 is fixed inside the housing 71. Ona top main surface of the substrate 700, the operation buttons 72 a to72 h, an acceleration sensor 701, the LEDs 702, and an antenna 754 andthe like are provided. These components are connected to a microcomputer751, and the like (see FIGS. 6 and 7) by lines (not shown) formed on thesubstrate 700 and the like. The microcomputer 751 as an example ofbutton data generation means of the present invention functions togenerate operation button data in accordance with a type of theoperation button 72 a and the like. This function is a known technique,and achieved, for example, by the microcomputer 751 detectingcontact/non-contact of the line by a switch mechanism such as a tactswitch located below a keytop. More specifically, the operation buttonis pressed to contact with the line, thereby conducting a currenttherethrough. The microcomputer 751 detects which operation button theline, in which the current conduction occurs, leads to, and generates asignal in accordance with a type of the operation button.

The controller 7 functions as a wireless controller by a wireless module753 (see FIG. 7) and the antenna 754. In the housing 71, a crystaloscillator (not shown) is provided for generating a basic clock of themicrocomputer 751, which will be described later. On the top mainsurface of the substrate 700, the speaker 706 and an amplifier 708 areprovided. The acceleration sensor 701 is provided on the left side ofthe operation button 72 d on the substrate 700 (i.e. on the periphery ofthe substrate 700, not on the center thereof). The acceleration sensor701 is capable of detecting acceleration included in a component causedby a centrifugal force in accordance with rotation of the controller 7about the longitudinal direction thereof, in addition to change ofdirection of gravitational acceleration. Thus, the game apparatus mainbody 3 or the like can be sensitive enough to determine the rotation ofthe controller 7 from detected acceleration data using a predeterminedcalculation.

As shown in FIG. 6, at a front edge of a bottom main surface of thesubstrate 700, the imaging information calculation section 74 isprovided. The imaging information calculation section 74 includes aninfrared filter 741, a lens 742, the image pickup element 743 and animage processing circuit 744 which are located in this order from thefront surface of the controller 7. These components are attached to thebottom main surface of the substrate 700. At a rear edge of the bottommain surface of the substrate 700, the connector 73 is attached. On thebottom main surface of the substrate 700, a sound IC 707 and themicrocomputer 751 are provided. The sound IC 707 is connected to themicrocomputer 751 and the amplifier 708 by lines formed on the substrate700 and the like, and outputs a sound signal to the speaker 706 via theamplifier 708 in accordance with the sound data transmitted from thegame apparatus main body 3.

On the bottom main surface of the substrate 700, a vibrator 704 isattached. The vibrator 704 is, for example, a vibration motor or asolenoid. The vibrator 701 is connected to the microcomputer 751 by aline formed on the substrate 700 and the like, and actuated orunactuated in accordance with vibration data transmitted from the gameapparatus main body 3. The controller 7 is vibrated by an actuation ofthe vibrator 704, and the vibration is conveyed to the player holdingthe controller 7. Thus, a so-called vibration-feedback game is realized.Because the vibrator 704 is located in the front portion of the housing71, the housing 71 is vibrated substantially, and hence the playerholding the controller 7 easily feels the vibration.

The following will describe an internal constitution of the controller 7with reference to FIG. 7. FIG. 7 is a block diagram showing an internalconfiguration of the controller 7.

As shown in FIG. 7, the controller 7 includes therein a communicationsection 75 in addition to the operation section 72, the imaginginformation calculation section 74, the acceleration sensor 701, thevibrator 704, the speaker 706, the sound IC 707, and the amplifier 708.

The imaging information calculation section 74 includes the infraredfilter 741, the lens 742, the image pickup element 743, and the imageprocessing circuit 744. The infrared filter 741 allows, among lightsincident on the front surface of the controller 7, only an infraredlight to pass therethrough. Here, the markers 8L and 8R located adjacentto the screen of the monitor 2 are infrared LED which output infraredlights forward, from the television 2. Thus, by providing the infraredfilter 741, images of the markers 8L and 8R can be more accuratelytaken. The lens 742 converges the infrared light which has passedthrough the infrared filter 741, and outputs the infrared light to theimage pickup element 743. The image pickup element 743 is a solid-stateimage pickup element such as a CMOS sensor or a COD. The image pickupelement 743 takes an image of the infrared light collected by the lens742. In other words, the image pickup element 743 takes an image of onlythe infrared light which has passed through the infrared filter 741.Then, the image pickup element 743 generates image data of the image.Hereinafter, an image taken by the image pickup element 743 is referredto as a taken image. The image data generated by the image pickupelement 743 is processed by the image processing circuit 744. The imageprocessing circuit 744 calculates a position of a target whose image isto be taken (the markers 8L and 8R) in the taken image. The followingwill describe a method for calculating the position of the target withreference to FIG. 8.

FIG. 8 is a view showing an example of a taken image. In the taken imageshown in FIG. 8, an image 8L′ of the marker 8L and an image 8R′ of themarker 8R are aligned side by side. When a taken image is inputted, theimage processing circuit 744 calculates coordinates indicative aposition of each region, in the taken image, which meets a predeterminedcondition. Here, the predetermined condition is a condition foridentifying an image of the target (an target image), and isspecifically that a region (high brightness region) has a brightness ofa predetermined value or larger and a size of a predetermined range orlarger. The predetermined condition may be a condition for identifyingthe target, and in an alternative embodiment, the predeterminedcondition may include a condition regarding a color of an image.

When calculating a position of the target image, the image processingcircuit 794 identifies the high brightness region as a candidate for thetarget image from the whole area of the taken image. This is because thetarget image appears as a high brightness region in image data of thetaken image. Next, based on the size of the identified high brightnessregion, the image processing circuit 744 executes determinationprocessing of determining whether or not the high brightness region isthe target image. The taken image may include images other than thetarget image by sunlight incoming through a window and light from afluorescent lamp in a room, in addition to the images 81L′ and 8R′ ofthe two markers 8L and 8R which are target images. In this case, theimages other than the images 8L′ and 8R′ of the markers 81, and 8Rappear as high bright regions. The above determination processing isprocessing for distinguishing the images 8L′ and 8R′ of the markers 8Land 8R, which are target images, from the other images, and accuratelyidentifying the target images. Specifically, in the determinationprocessing, whether or not the identified high bright region has a sizeof a predetermined range or smaller is determined. When the high brightregion has a size of the predetermined range or smaller, it isdetermined that the high bright region indicates a target image. Whenthe high bright region does not have a size of the predetermined rangeor smaller, it is determined that the high bright region indicates animage other than the target images.

Further, the image processing circuit 744 calculates a position of thehigh bright region which is determined to indicate a target image as theresult of the determination processing. Specifically, the imageprocessing circuit 744 calculates a position of the center of the highbright region. It is noted that the position of the center can becalculated on a scale smaller than the resolution of the image pickupelement 743. Here, the resolution of an image taken by the image pickupelement 743 is 126×96, and the position of the center is calculated on ascale of 1024×768. In other words, the coordinate of the position of thecenter is represented by integer values of (0,0) to (1024,768). As shownin FIG. 8A, a position in the taken image is represented by a coordinatesystem (xy coordinate system) whose origin is at the upper left cornerof the taken image, whose y axis positive direction is the downwarddirection, and whose x axis positive direction is the rightwarddirection.

As described above, the image processing circuit 744 calculates acoordinate indicative of a position of each region, in the taken image,which meets the predetermined condition. Hereinafter, a coordinatecalculated by the image processing circuit 744 is referred to as amarker coordinate. The marker coordinate is a coordinate indicative ofthe position of a target in a coordinate system for representing aposition in a plane corresponding to the taken image. The imageprocessing circuit 744 outputs the marker coordinate to themicrocomputer 751 of the communication section 75. Data of the markercoordinate is transmitted as operation data by the microcomputer 751 tothe game apparatus main body 3. Because the marker coordinate changes inaccordance with the facing direction (orientation) and the position ofthe controller 7, the game apparatus main body 3 can calculate thefacing direction and the position of the controller 7 using thecoordinate values. It is noted that although the image processingcircuit 744 and/or the microcomputer 751 of the controller 7 executeprocessing until calculating the marker coordinate from the taken imagein the present embodiment, for example, the taken image may betransmitted to the game apparatus main body 3 and the CPU 10 of the gameapparatus main body 3 may execute the same processing as the processingthereafter.

The controller 7 preferably includes a three-axis (x-axis, y-axis, andz-axis) acceleration sensor 701. The three-axis acceleration sensor 701detects linear acceleration in three directions, i.e., an up-downdirection, a left-right direction, and a front-rear direction. In analternative embodiment, a two-axis accelerometer which detects onlylinear acceleration along each of the up-down direction and theleft-right direction (the other pair of directions) may be useddepending on the type of control signals used in the game processing. Asa non-limiting example, the two-axis or three-axis acceleration sensor701 may be of the type available from Analog Devices, Inc. orSTMicroelectronics N.V. Preferably, the acceleration sensor 701 may beof electrostatic capacitance or capacitance-coupling type which is basedon silicon micro-machined MEMS (microelectromechanical systems)technology. However, any other suitable accelerometer technology (e.g.,piezoelectric type or piezoresistance type) now existing or laterdeveloped may be used to provide the two-axis or three-axis accelerationsensor 701.

As one skilled in the art understands, accelerometers, as used in theacceleration sensor 701, are only capable of detecting accelerationalong a straight line (linear acceleration) corresponding to each axisof the acceleration sensor. In other words, the direct output of theacceleration sensor 701 is limited to signals indicative of linearacceleration (static or dynamic) along each of the one, two or threeaxes thereof. As a result, the acceleration sensor 701 cannot directlydetect movement along a non-linear (e.g. arcuate) path, rotation,rotational movement, angular displacement, inclination, position,attitude or any other physical characteristic.

However, through processing by a computer such as the processor of thegame apparatus (e.g. the CPU 10) or the processor of the controller 7(e.g. the microcomputer 751) based on the linear acceleration signalsoutputted from the acceleration sensor 701, additional informationrelating to the controller 7 can be inferred or calculated, as oneskilled in the art will readily understand from the description herein.For example, when the processing is performed by the computer on theassumption that the controller 7 provided with the acceleration sensor701 is in static state (or when the processing is performed while onlygravitational acceleration is detected by the acceleration sensor 701),if the controller 7 is actually in static state, the detectedacceleration is used to determine whether or not the controller 7 isinclined relative to the direction of gravity or how many degrees thecontroller 7 is inclined relative to the direction of gravity. Morespecifically, when a state where the detection axis of the accelerationsensor 701 extends in a vertically-down direction is set as a standardstate, it is possible to determine whether or not the controller 7 isinclined by determining whether 1G (gravitational acceleration) isapplied in the direction of the detection axis of the accelerationsensor 701. It is also possible to determine how many degrees thecontroller 7 is inclined with respect to the vertically downwarddirection by determining the magnitude of the acceleration applied inthe above detection axis direction. In addition, in the case of amulti-axis acceleration sensor, it is possible to determine in detailhow many degrees each axis is inclined relative to the direction ofgravity through processing of a signal of acceleration detected for eachaxis. In this case, a processor may perform processing based on theoutput from the acceleration sensor 701 for calculating inclinationangle data of the controller 7. Alternatively, processing may beperformed so as to infer rough inclination of the controller 7 based onthe output from the acceleration sensor 701 without calculating theinclination angle data. As described above, the acceleration sensor 701is used in combination with the processor to determine inclination,attitude or position of the controller 7. On the other hand, on theassumption that the acceleration sensor 701 is in dynamic state, theacceleration sensor 701 detects acceleration corresponding to motion ofthe acceleration sensor 701 in addition to a gravitational accelerationcomponent. Thus, it is possible to determine the direction of the motionof the controller 7 by eliminating the gravitational accelerationcomponent through predetermined processing. More specifically, variousmovements and/or positions of the controller 7 can be calculated orinferred through processing of the acceleration signal generated by theacceleration sensor 701 when the controller 7 provided with theacceleration sensor 701 is subjected to dynamic acceleration by the handof the player. It is noted that even on the assumption that theacceleration sensor 701 is in dynamic state, it is possible to determineinclination of the controller 7 relative to the direction of gravity byeliminating acceleration corresponding to motion of the accelerationsensor 701 through predetermined processing. In an alternativeembodiment, the acceleration sensor 701 may include an embedded signalprocessor or other type of a dedicated processor for performing anydesired processing of the acceleration signals outputted fromaccelerometers therein prior to outputting signals to the microcomputer751. For example, the embedded or dedicated processor could convert thedetected acceleration signal into a corresponding tilt angle (or anothersuitable parameter) when the acceleration sensor 701 is intended todetect static acceleration (i.e., gravitational acceleration).

In an alternative embodiment, a gyro-sensor of any suitable technologyincorporating, for example, a rotating or vibrating element may be usedas a sensor for detecting motion of the controller 7. Exemplary MEMSgyro-sensors which may be used in this embodiment are available fromAnalog Devices, Inc. Unlike the linear acceleration sensor 701, agyro-sensor is capable of directly detecting rotation (or angular rate)around an axis defined by the gyroscopic element (or elements) therein.Thus, due to the fundamental differences between a gyro-sensor and alinear acceleration sensor, corresponding changes need to be made to theprocessing operations which are performed on the output signals fromthese devices depending on which device is selected for a particularapplication.

Specifically, when a gyro-sensor is used instead of an accelerationsensor to calculate inclination and attitude, significant changes arenecessary. More specifically, when a gyro-sensor is used, the value ofinclination is initialized at the start of detection. Then, data onangular velocity which is outputted from the gyro-sensor is integrated.Furthermore, a change amount in inclination from the value of tilepreviously initialized is calculated. In this case, the calculatedinclination is determined as a value corresponding to an angle. Incontrast, when an acceleration sensor is used, inclination is calculatedby comparing the value of the gravitational acceleration of each axialcomponent with a predetermined reference. Therefore, the calculatedinclination can be represented as a vector. Thus, withoutinitialization, an absolute direction can be determined with anaccelerometer. The type of the value calculated as an inclination isalso very different between a gyro-sensor and an accelerometer; i.e.,the value is an angle when a gyro-sensor is used and is a vector when anaccelerometer is used. Therefore, when a gyro-sensor is used instead ofan acceleration sensor, data on inclination also needs to be processedby a predetermined conversion that takes into account the fundamentaldifferences between these two devices. Due to the fact that the natureof gyro-sensors is known to one skilled in the art, as well as thefundamental differences between accelerometers and gyro-sensors, furtherdetails are not provided herein. While gyro-sensors provide certainadvantages due to their ability to directly detecting rotation,acceleration sensors are generally more cost-effective as compared withthe gyro-sensors when used for the controller of the present embodiment.

The communication section 75 includes the microcomputer 751, a memory752, the wireless module 753, and the antenna 754. The microcomputer 751controls the wireless module 753 for wirelessly transmitting thetransmission data while using the memory 752 as a storage area duringprocessing. The microcomputer 751 controls the operations of the soundIC 707 and the vibrator 704 in accordance with the data which thewireless module 753 receives from the game apparatus main body 3 via theantenna 754. The sound IC 707 processes the sound data and the liketransmitted from the game apparatus main body 3 via the communicationsection 75. The microcomputer 751 actuates the vibrator 704 inaccordance with the vibration data (e.g. a signal for actuating orunactuating the vibrator 704) transmitted from the game apparatus mainbody 3 via the communication section 75.

Data from the controller 7 including an operation signal (key data) fromthe operation section 72, acceleration signals (acceleration data ofdirections of x-axis, y-axis, and z-axis which is hereinafter referredto merely as acceleration data) from the acceleration sensor 701, andthe process result data from the imaging information calculation section74 are outputted to the microcomputer 751. The microcomputer 751temporarily stores the input data (the key data, the acceleration data,and the process result data) in the memory 752 as the transmission datawhich is to be transmitted to the wireless controller module 19. Thewireless transmission from the communication section 75 to the wirelesscontroller module 19 is performed periodically at a predetermined timeinterval. Because game processing is generally performed at a cycle of1/60 sec., data needs to be collected and transmitted at a cycle of ashorter time period. Specifically, the game processing unit is 16.7 ms (1/60 sec.), and the transmission interval of the communication section75 structured using the Bluetooth (registered trademark) technology is 5ms. At the transmission timing to the wireless controller module 19, themicrocomputer 751 outputs the transmission data stored in the memory 752as a series of operation information to the wireless module 753. Thewireless module 753 uses, for example, the Bluetooth (registeredtrademark) technology to modulate the operation data onto a carrier waveof a predetermined frequency and to radiate the resultant radio signalfrom the antenna 754. Thus, the key data from the operation section 72provided in the controller 7, the acceleration data from theacceleration sensor 701, and the process result data from the imaginginformation calculation section 74 are modulated into the radio signalby the wireless module 753 and transmitted from the controller 7. Thewireless controller module 19 of the game apparatus main body 3 receivesthe radio signal, and the game apparatus main body 3 demodulates ordecodes the radio signal to obtain the series of operation information(the key data, the acceleration data, and the process result data).Based on the obtained operation information and the game program, theCPU 10 of the game apparatus main body 3 performs the game processing.In the case where the communication section 75 is structured using theBluetooth (registered trademark) technology, the communication section75 can have a function of receiving transmission data which iswirelessly transmitted from another device.

The following will describe an outline of a game assumed in the presentembodiment with reference to FIGS. 9 to 27. The game assumed in thepresent embodiment is a sword-fighting game set in a virtualthree-dimensional space. FIG. 9 shows an example of a game screenassumed in the present embodiment. As shown in FIG. 9, a player object101, a cursor 102, enemy objects 103, and the like are displayed in thegame screen. In the present game, the game screen is drawn based on athird person viewpoint for which a virtual camera is located behind theplayer object 101. The player object 101 holds a sword object 104. Inthe present game, the player object 101 defeats enemy objects 103 withthe sword object 104.

The following will describe an operation in the present game. In thepresent game, as shown in FIG. 10, an operation for the player object101 is performed in a state where an extended controller 36 is connectedto the connector 73 of the controller 7. Here, the extended controller36 includes an analog stick 39 capable of performing input in analogform. When playing the game, for example, as shown in FIG. 11, theplayer holds the controller 7 with a right hand and the extendedcontroller 36 with a left hand. In this case, the player holds thecontroller 7 such that the front surface of the controller 7 (that is, aside having an entrance through which light is incident on the imaginginformation calculation section 74 taking an image of the light) heldwith the right hand faces the markers 8L and 8R. In this state, theplayer can perform a game operation by tilting the controller 7,changing a position in the screen to which the controller 7 points (apointing position), or changing the distance between the controller 7and each of the markers 8L and 8R. In the game of the presentembodiment, an operation for moving the player object 101 is mainlyperformed with the extended controller 36 held with the left hand, andan operation for moving the cursor 102 and an operation for an attackwith the sword object 104 is mainly performed with the controller 7 heldwith the right hand. Here, the present game is a sword-fighting game asdescribed above, and an attack motion of the player object 101 is amotion of “cutting” the enemy object 103 with the sword object 104.Thus, hereinafter, an operation for an attack is referred to as a“cutting attack operation”.

First, an operation for moving the player object 101 with the extendedcontroller 36 will be described. When the player tilts the analog stick39 of the extended controller 36, held with the left hand, in the upwarddirection, the player object 101 moves forward. When the player tiltsthe analog stick 39 in the downward direction, the player object 101moves backward. When the player tilts the analog stick 39 in therightward direction, the player object 101 moves horizontally rightward(moves rightward without changing the facing direction of the playerobject; e.g. a motion of rightward side stepping while facing forward).When the player tilts the analog stick 39 in the leftward direction, theplayer object 101 moves horizontally leftward.

Next, an operation with the controller 7 will be described. On the gamescreen, the cursor 102 is displayed at a position to which thecontroller 7 points (a pointing position). In the present embodiment,when the cursor 102 is moved at less than a predetermined speed, anormal cursor moving operation by which the cursor is simply displayedat a pointing position can be performed. When the cursor 102 is moved towithin a predetermined region adjacent to the periphery of the screen(hereinafter, referred to as a screen scrolling region), the facingdirection of the virtual camera is changed in accordance with theposition of the cursor 102, and the screen can be scrolled. For example,when the cursor 102 is moved to the upper end of the screen (within thescreen scrolling region) as shown in FIG. 12( a), the facing directionof the virtual camera becomes upward. In other words, the virtual camerarotates about x-axis. As a result, the view line direction of thevirtual camera becomes upward such that the virtual camera looks up, anddrawing is made in this state.

Similarly, for example, as shown in FIG. 13( a), when the cursor 102 ismoved to the right end of the screen, the virtual camera also turnsright as shown in FIG. 13( b) (rotates clockwise about y-axis). In thiscase, the player object 101 turns rightward, and change of direction ispossible. For example, when the cursor 102 is moved to the right end ofthe screen and stays at the position, it is possible to turn right inthe virtual game space.

On the other hand, when the cursor 102 is moved at the predeterminedspeed or faster, a cutting attack operation is possible. In other words,by quickly moving the cursor 102 so as to pass through the enemy object103 (e.g. from left to right), it is possible to perform an intuitiveoperation of “cutting” the enemy object 103.

The following will describe the cutting attack operation. As describedabove, when moving the cursor 102 at the predetermined speed or faster,a cutting attack operation is possible. FIGS. 14 and 15 show an exampleof a cutting attack operation. FIG. 14 shows a state immediately afterthe start of a cutting attack, in which the cursor 102 is being moved atthe predetermined speed or faster. In FIG. 14, a cutting attacktrajectory 108 indicative of a trajectory of the cutting attack startsto be displayed. FIG. 15 shows a state during the cutting attack, inwhich the cutting attack hits an enemy object 103. A hit effect 109which is prepared in advance is drawn so as to be superimposed on a partof the cutting attack trajectory 108 which extends rightward from theposition where the cutting attack hits the enemy object 103, therebyindicating that the cutting attack hits the enemy object 103.

The following will describe a principle of processing for a cuttingattack operation (hereinafter, referred to merely as cutting attackprocessing). In the present embodiment, a change amount of the pointingposition (the displayed position of the cursor 102) of the controller 7(namely, a moving amount of the cursor 102) per a predetermined unittime, specifically, per one frame ( 1/60 sec.) is calculated. When thechange amount is less than a predetermined value, processing regardingthe above normal cursor moving operation or screen scrolling isexecuted. When the change amount is equal to or larger than thepredetermined value, the cutting attack processing is executed.

FIGS. 16 to 23 are views for explaining the principle of the cuttingattack processing, and show a shift of the pointing position per oneframe. In these figures, black points indicate current pointingpositions, and shaded points indicate pointing positions detectedpreviously. Star signs indicate the start position of a cutting attack(hereinafter, referred to as a cutting attack start point), andtriangles indicate the end position of the cutting attack (hereinafter,referred to as a cutting attack end point).

As an initial state, a position indicated by a point 111 in FIG. 16 ispointed to. A state after one frame from this state is assumed to be astate shown in FIG. 17. In FIG. 17, a point 112 located at the currentpointing position and the point 111 located at the pointing position atone frame before are shown. The change amount from the point 111 to thepoint 112, for example, a distance d (which can be calculated based onthe coordinates of both pointing positions), is assumed to be less thana first predetermined value. In this case, the above processing ofscrolling the screen is executed (in the example of FIG. 17, the virtualcamera slightly rotates rightward).

On the other hand, the state after one frame from the state in FIG. 16is assumed to be a state shown in FIG. 18. In FIG. 18, the distance dfrom the point 111 located at the pointing position at one frame beforeto a point 112 located at the current pointing position is assumed to beequal to or larger than the first predetermined value. In other words, astate where it is detected that the change amount is equal to or largerthan the first predetermined value is assumed. In this case, the cuttingattack processing is executed. In the cutting attack processing, thestart point of a cutting attack is set. Specifically, the point 111 atone frame before is set as a cutting attack start point 121 as shown inFIG. 19. A trajectory from the cutting attack start point 121 to thepoint 112 is calculated, and drawing of a cutting attack trajectory andhit determinant processing for an enemy object 103 is executed based onthe trajectory.

Then, every one frame, the distance d between the current pointingposition and the pointing position at one frame before is calculated,and as shown in FIGS. 20 and 21, the above drawing of the cutting attacktrajectory and the hit determinant processing are continuously executedas long as the distance d is larger than a second predetermined value.

Then, when the distance d between a point 115 located at the currentpointing position and a point 114 located at the pointing position atone frame before becomes equal to or less than the second predeterminedvalue after the cutting attack start point 121 is determined as shown inFIG. 22, the point 115 located at the current pointing position is setas a cutting attack end point 122 as shown in FIG. 23. As a result, thecutting attack trajectory 108 becomes a trajectory passing through thepointing positions detected from the cutting attack start point 121 tothe cutting attack end point 122.

As described above, in the present embodiment, two types of operations,the normal cursor moving operation and the cutting attack operation, areselectively used depending on whether or not the change amount of thepointing position (the change amount of the displayed position of thecursor 102) per the predetermined unit time (per one frame) is equal toor larger than the first predetermined value. In the cutting attackoperation, when it is detected that the change amount is equal to orlarger than the first predetermined value, the pointing position at oneframe before is set as a cutting attack start point. Then, when thechange amount becomes equal to or less than the second predeterminedvalue, a cutting attack end point is set. Thus, by moving the cursor 102at a predetermined speed or faster, the trajectory can be a cuttingattack trajectory 108. For that reason, in addition to the linearcutting attack trajectory 108 as in the example of FIG. 23, a curvedcutting attack trajectory 108 shown in FIG. 24 is possible. In FIG. 24,the cutting attack trajectory 108 extends from bottom left in the upperright direction and further in the lower right direction. In the case ofsuch a trajectory, a game screen is drawn as shown in FIG. 25 (In FIG.25, the cutting attack trajectory 108 does not hit the enemy object 103,and a hit effect is not drawn). In other words, in addition to themanner of linear cutting, it is possible to cut any position, desired bythe player, in the screen, thereby achieving an operation with a highdegree of freedom.

In the case where the pointing position is moved out of the screen afterthe cutting attack start point 121 is set, a cutting attack end point122 is set when it is detected that the pointing position is out of thescreen. For example, a position at the periphery of the screen is set asa cutting attack end point 122. FIG. 26 shows an example of a cuttingattack trajectory 108 when the pointing position is moved out of thescreen after the start of a cutting attack. FIG. 27 shows an example ofa game screen in this case. In FIG. 27, because the pointing position isout of the screen (adjacent to the upper right corner of the screen),the cursor 102 is not displayed on the screen (instead, a plurality oftriangles indicative of the moving direction of the cursor 102 isdisplayed in the upper right portion of the screen).

The following will describe in detail the game processing executed bythe game apparatus main body 3. First, data stored in the external mainmemory 12 during the game processing will be described. FIG. 28 is aview showing a memory map of the external main memory 12 in the gameapparatus main body 3. As shown in FIG. 28, the external main memory 12includes a program storage region 330 and a data storage region 332. Apart of data in the program storage region 330 and the data storageregion 332 is stored in the optical disc 4, and transferred to andstored in the external main memory 12 when executing the game program.

In the program storage region 330, programs, such as a main processingprogram 331 for executing a flow chart shown in later-described FIG. 29and the like, are stored.

In the data storage region 332, data, such as operation data 333,current pointing coordinate data 334, last pointing coordinate data 335,pointing history data 336, attack impossible time data 337, an intervalcounter 338, and a cutting attack occurrence flag 339, are stored.

The operation data 333 is data obtained from the controller 7, andincludes marker coordinate data 3331 indicative of the above markercoordinates (see FIG. 8). Here, when any one of the markers 8L and 8Rdoes not appear in the taken image as shown in FIG. 8, a valueindicative of this (e.g. a NULL value) is set. In addition, theoperation data 333 includes data indicative of contents of operations bythe player, such as data indicative of a state of pressing each button,acceleration data, data indicative of contents of an operation performedwith respect to the extended controller 36 (an operation of the aboveanalog stick 39, and the like).

The current pointing coordinate data 334 is data calculated based on theabove marker coordinate data 3331 and indicative of a pointingcoordinate of the controller 7. The last pointing coordinate data 335 isdata calculated in processing at the last frame and indicative of apointing coordinate.

The pointing history data 336 is data indicative of a history ofpointing coordinates detected after the start of a cutting attack untilthe end of the cutting attack. The poi history data 336 is used forgenerating and drawing the above cutting attack trajectory 108.

The attack impossible time data 337 is data indicative of the length ofan attack impossible time which is set after the end of a series of thecutting attack operation. The attack impossible time is a time which isprovided in view of the contents of the present game for preventingsuccessive cutting attacks from being performed by an operation ofshaking the controller 7 quickly right and left by the player only usinga wrist. In other words, after the end of one cutting attack, anothercutting attack cannot be performed immediately.

The interval counter 338 is a counter for counting the elapse of theattack impossible time. As an initial value, “0” is set in the intervalcounter 338.

The cutting attack occurrence flag 339 is a flag for indicating whetheror not it is during a cutting attack. If ON, the cutting attackoccurrence flag 339 indicates that it is during a cutting attack, and ifOFF, the cutting attack occurrence flag 339 indicates that a cuttingattack is not occurring. The cutting attack occurrence flag 339 isinitially set to be OFF.

The following will describe the game processing executed by the gameapparatus main body 3 with reference to FIGS. 29 to 32. FIGS. 29 and 30are flow charts showing the game processing executed by the gameapparatus main body 3. FIG. 31 is a subroutine showing a detailedoperation in change amount calculation processing in FIG. 29, and FIG.32 is a subroutine showing a detailed operation in hit determinationprocessing in FIG. 30. By repeating the processing in the flow charts ofFIGS. 29 and 30 every one frame, the game advances. In the flow chartsshown in FIGS. 29 and 30, among processing for the whole game,processing for the above cutting attack operation will be described, butother processing which are not directly relevant to the presentinvention will not be described in detail.

At a step S1, the marker coordinate data 3331 is obtained from theexternal main memory 12.

At the following step S2, whether or not the markers 8L and 8R isdetected in a taken image by the controller 7 is determined. In otherwords, whether or not the controller 7 faces the television 2 isdetermined. Specifically, the CPU 10 determines whether or not theimages of the markers 8L and 8R appear in the taken image as shown inFIG. 8. As described above, when any one of the markers 8L and 8R doesnot appear in the taken image, because a value (e.g. a NULL value)indicative of this is set in the marker coordinate data 3331, whether ornot the controller 7 faces the television 2 can be determined bydetermining whether or not this value is set.

As the result of the determination at the step S2, when any one of themarkers 8L and 8R is not detected (NO at the step S2), the processingproceeds to a later-described step S15. On the other hand, when both ofthe markers 8L and 8R are detected (YES at the step S2), a pointingposition is calculated at a step S3.

The following will describe an example of a method for calculating apointing coordinate. As described above, the marker coordinate data 3331includes data indicative of the above marker coordinates. Because thisdata is indicative of two marker coordinates (see FIG. 8) correspondingto the markers 8L and 8R, the CPU 10 calculates the midpoint between thetwo marker coordinates. The position of the midpoint is represented byusing the above xy coordinate system for representing a position in aplane corresponding to the taken image. Next, the CPU 10 converts thecoordinate indicative of the position of the midpoint into a coordinatein a coordinate system (referred to as an x′y′ coordinate system) forrepresenting a position in the screen of the television 2. Thisconversion can be performed by using a function for converting thecoordinate of the midpoint calculated from the taken image into acoordinate in the screen corresponding to the actual pointing positionof the controller 7 when the taken image is taken. In this case, becausethe pointing position of the controller 7 is moved in a directionreverse to the positions of the marker coordinates in the taken image,the conversion is performed such that right and left and up and down areinverted. The coordinate represented by x′-y′ coordinate valuescalculated thus is the pointing coordinate of the controller 7.

Subsequent to the processing of calculating the pointing coordinate, ata step S4, whether or not the cutting attack occurrence flag 339 hasbeen set to be ON is determined. As the result of the determination,when the cutting attack occurrence flag 339 has been set to be ON (YESat the step S4), because a cutting attack has been already started, theprocessing proceeds to the later-described step S15.

On the other hand, when the cutting attack occurrence flag 339 has beenset to be OFF (NO at the step S4), whether or not the pointing positionis within the screen is determined at the following step S5. Thisdetermination is made on the assumption of the case where the controller7 faces the television 2 (markers 8L and 8R) and the markers 8L and 8Rappear in the taken image but the controller 7 does not point to thescreen, such as the case where the controller 7 points to the outerframe of the television 2. Here, whether or not the pointing coordinateobtained by converting the marker coordinate at the step S3 has a valuewithin a predetermined range defined in advance as “out-of-screencoordinate” (e.g. a region surrounding the outer periphery of the screenis defined in advance as this predetermined range) is determined.

As the result of the determination at the step S5, when the pointingposition is not within the screen (NO at the step S5), the processingproceeds to the later-described step S15. On the other hand, when thepointing position is within the screen (YES at the step S5), next, at astep S6, the change amount calculation processing of calculating thechange amount of the pointing position from the last frame to thecurrent frame is executed. FIG. 31 is a flow chart showing a detailedoperation in the change amount calculation processing at the step S6. Asshown in FIG. 31, at a step S31, the pointing coordinate obtained at thestep S3 is stored in the current pointing coordinate data 334.

At the following step S32, the last pointing coordinate data 335 is readfrom the external main memory 12.

Then, at a step S33, the change amount is calculated based oncoordinates (hereinafter, referred to as a current pointing coordinateand a last pointing coordinate, respectively) indicated by these twopointing coordinate data. Specifically, where the current pointingcoordinate and the last pointing coordinate are represented by (X1,Y1)and (X2,Y2), respectively, the change amount C is calculated by thefollowing formula:C=√{square root over ((X2−X1)²+(Y2−Y1)²)}{square root over((X2−X1)²+(Y2−Y1)²)}.This is the end of the change amount calculation processing.

Referring back to FIG. 29, next, at a step S7, whether or not thecalculated change amount C is equal to or larger than a firstpredetermined value is determined. In other words, whether the playermoves the cursor 102 quickly or slowly is determined. As the result ofthe determination, when the change amount C is less than the firstpredetermined value (NO at the step S7), the processing proceeds to thelater-descried step S15.

On the other hand, when the change amount C is equal to or larger thanthe first predetermined value (YES at the step S7), whether or not anelapsed time indicated by the interval counter 338 is equal to or largerthan the attack impossible time indicated by the attack impossible timedata 337 is determined at the following step S8. When the elapsed timeindicated by the interval counter 338 is less than the attack impossibletime indicated (NO at the step S8), the processing proceeds to thelater-descried step S15.

On the other hand, when the elapsed time indicated by the intervalcounter 338 is equal to or larger than the attack impossible timeindicated by the attack impossible time data 337 (YES at the step S8),counting-up of the interval counter 338 is stopped at the following stepS9 (it is noted that the counting is started in later-describedprocessing at a step S23). Further, the interval counter 338 is reset.

Next, at a step S10, the cutting attack occurrence flag 339 is set to beON. At the following step S11, the last pointing coordinate is set as acutting attack start point 121 (see FIG. 19).

Next, at a step S12, the pointing coordinate calculated at the step S3is added to the pointing history data 336.

Next, at a step S13, the pointing history data 336 is referred to, and acutting attack trajectory 108 connecting the cutting attack start point121 and the current pointing coordinate is calculated. Then, drawing ofthe cutting attack trajectory 108 is executed. In addition, the cursor102 is drawn at the position in the screen which is indicated by thecurrent pointing coordinate.

Next, at a step S14, the hit determination processing is executed fordetermining whether or not the cutting attack hits an enemy object 103.FIG. 32 is a flow chart showing in detail the hit determinationprocessing at the step S14. As shown in FIG. 32, at a step S41, atrajectory obtained by extending the cutting attack trajectory in thedepth direction (in the z-axis positive direction) is calculated, andwhether or not this trajectory collides with an enemy object 103 isdetermined. As the result of the determination, when the trajectory doesnot collide with any enemy object 103 (NO at the step S41), the hitdetermination processing ends.

On the other hand, when the trajectory collides with an enemy object 103(YES at the step S41), hit processing is executed at the following stepS42. In the hit processing, processing for damaging the collided enemyobject 103 and processing of drawing a hit effect (see the hit effect109 in FIG. 15) so as to be superimposed on a part of the cutting attacktrajectory which extends from a position where the cutting attack hitsthe enemy object 103 are executed. In addition to the above drawing ofthe hit effect so as to be superimposed, a hit effect may be provided bychanging the color of the part of the cutting attack trajectory whichextends from the position where the cutting attack hits the enemy object103. This is the end of the hit determination processing.

At the following step S15, processing of updating the last pointingcoordinate data 335 with the values of the current pointing coordinatedata 334 is executed. When the pointing coordinate represents a positionout of the screen (NO at the step S2 or S5), a value indicating that thepointing coordinate represents the position out of the screen is set inthe last pointing coordinate data 335. Then, the game processing ends.

Next, processing when the cutting attack occurrence flag 339 has beenset to be ON as the result of the determination at the step S4 (YES atthe step S4) will be described. In other words, processing after thecutting attack is started will be described. In this case, at a stepS16, whether or not the pointing position is within the screen isdetermined. The processing at the step S16 is the same as that at thestep S5. As the result of the determination, when the pointing positionis not within the screen (NO at the step S16), the processing proceedsto a later-described step S19. On the other hand, when the pointingposition is within the screen (YES at the step S16), the change amountcalculation processing is executed at a step S17. The processing at thestep S17 is the same as that at the step S6, and thus the descriptionthereof will be omitted.

Next, at a step S18, whether or not a change amount C calculated at thestep S17 is equal to or less than a second predetermined value isdetermined. In other words, after the cutting attack is started by themovement of the cursor at a predetermined speed or faster, whether ornot the movement speed of the cursor becomes equal to or less than apredetermined speed is determined. As the result of the determination,when the change amount C is not equal to or less than the secondpredetermined value (NO at the step S18), it means that the cuttingattack continues, and thus the processing proceeds to the step S12 andaddition of a pointing history, drawing of the cutting attack trajectory108, and the like are executed.

On the other hand, when the change amount C becomes equal to or lessthan the second predetermined value (YES at the step S18), the followingprocessing is executed to end the cutting attack. At the step S19, thecutting attack occurrence flag 339 is set to be OFF. Next, at a stepS20, the current pointing coordinate is set as a cutting attack endpoint 122. At this time, when the pointing position is out of the screen(when NO at the step S16), the CPU 10 calculates a trajectory obtainedby extending a trajectory, which connects the last pointing coordinateand a pointing coordinate detected immediately prior to the detection ofthe last pointing coordinate, to the periphery of the screen, and sets acoordinate at a position where the calculated trajectory intersects withthe periphery of the screen as a cutting attack end point 122.

Next, at step S21, by executing the same processing as at the step S13,a cutting attack trajectory connecting the cutting attack start point121 and the current pointing coordinate 122 is drawn.

At the following step S22, the pointing history data 336 is cleared.Further, at a step S23, counting-up of the interval counter 338 isstarted. Then, the processing proceeds to the step S15. This is the endof the game processing according to the present embodiment.

As described above, in the present embodiment, when a change amount ofthe pointing position per one frame is larger than a predeterminedvalue, in other words, when the cursor is moved at a predetermined speedor faster, a cutting attack having the pointing position at that time asa start point is started. Then, when the movement speed of the cursorbecomes equal to or less than a predetermined value, the pointingposition at that time is set as an end point: of the cutting attack, andthe cutting attack is ended. Thus, in a game system which detects apointing position based on an image pickup device and markers 8L and 8R,it is possible to execute different processing when an operation isperformed to move the cursor slowly or quickly. Further, a pointingposition when moving the cursor at the predetermined speed or faster isset as a start point, and processing can be executed. As a result, it ispossible to perform an operation with a higher degree of freedom,thereby providing a new way of enjoyment to the player.

In the above embodiment, a change amount of the pointing position iscalculated per one frame ( 1/60 sec.) which is an interval of drawingthe screen. However, the present invention is not limited thereto, and,for example, the change amount may be calculated per 5 ms ( 1/200 sec.)which is a transmission interval of operation data from the controller 7to the game apparatus main body 3. Operation data for one frame which istransmitted from the controller 7 may be stored in a predeterminedbuffer, and the change amount calculation processing at the steps S6 andS17 may be repeatedly executed for the data stored in the buffer.Further, not based on a change amount from a pointing position at oneframe before (last pointing coordinate) as described above, based on achange amount of the pointing position obtained from the operation datafor one frame, the processing at the steps S7 and S18 may be executed.

Further, a plurality of types of weapons to be held by the player objectmay be set, and the reach of an attack in the depth direction (the rangeof a weapon) may be individually set for each weapon in the hitdetermination processing. In this case, “weapon data” indicative of aplurality of types of weapons is defined, and data of “range” is definedin advance in each “weapon data”. For example, a “double-handed sword”is defined so as to have a longer range than that of a “one-handedsword”. In other words, the definition is made such that an attack withthe “double-handed sword” reaches a more distant enemy object (namely,the double-handed sword has a longer blade than that of the one-handedsword). Then, in the hit determination processing at the step S14, the“range” is read from the “weapon data” of the currently used weapon, atrajectory of the cutting attack is extended in the virtual game spacefor a distance according to the “range”, and the determination ofcollision with an enemy object 103 may be determined. As describedabove, by using a parameter which is the “range”, each weapon can have acharacteristic when a plurality of weapons are used in the game, therebyenhancing the fun of the game.

Further, regarding drawing of a cutting attack trajectory 108, amovement trajectory of the cursor 102 may be displayed prior to drawingof the cutting attack trajectory 108. For example, as shown in FIG. 33,a movement trajectory 131 of the cursor 102 may be drawn prior to thecutting attack trajectory 108, and the cutting attack trajectory 108 maybe drawn after several frames (drawing is made such that the cuttingattack trajectory 108 traces the movement trajectory 131). Thus, in thecase where a plurality of types of weapons are set as described above,when the player object 101 uses a heavy weapon which takes time to swingaround, the heaviness of the weapon can be expressed, thereby enhancingthe fun of the game. In addition, it can be made easy for the player toknow what trajectory is drawn.

Further, “penetrating power” indicative of the “sharpness” of a weaponmay be set as a parameter of the weapon data, and processing based onthis parameter may be executed. For example, when a plurality of enemyobjects 103 align along the cutting attack trajectory 108, processingmay be executed such that only one enemy object 103 is cut by a singlecutting attack with a weapon having a low penetrating power (a bluntweapon) (the above hit processing is executed only for the one enemyobject 103), but the plurality of enemy objects 103 aligning along thecutting attack trajectory 108 are cut by a single cutting attack with aweapon having a high penetrating power (a sharp weapon) (the above hitprocessing is executed for each of the enemy objects 103 aligning alongthe cutting attack trajectory 108). More specifically, as the“penetrating power” parameter, a “distance (pixel number) from aposition where a cutting attack initially hits an enemy object 103 to aposition where the cutting attack can reach” is set. For example, when avalue of “100” is set as the “penetrating power” parameter, processingis executed such that a cutting attack continues (a cutting attacktrajectory is drawn) for a distance equivalent to 100 pixels from aposition in the screen where the cutting attack initially hits an enemyobject 103 (a position obtained by converting the position of the enemyobject 103 initially hit by the cutting attack in the virtual space froma three-dimensional coordinate system to a two-dimensional coordinatesystem (screen coordinate system) and any number of enemy objects 103are cut within the distance (however, when enemy objects 103 align inthe depth direction, the hit processing is executed for the nearestenemy object 103). Thus, by setting the “penetrating power” as a“distance for which a cutting attack continues (pixel number)”, eachweapon can have a characteristic when a plurality of weapons are used inthe game, thereby enhancing the fun of the game. Further, for example,by making a large enemy object with an overall length of 30 m appear inthe virtual space, and by setting a plurality of hit points in the largeenemy object (the hit processing can be executed a plurality of timesfor the single large enemy object), each enemy object 103 can have acharacter', thereby enhancing the fun of the game.

Further, as the “penetrating power” parameter, a number of times ofattacks in a single cutting attack may be set. For example, a value of“5” is set (it indicates that it is possible to attack five enemyobjects 103 with a single cutting attack), and in the case where thereare a plurality of enemy objects 103 aligning along the cutting attacktrajectory 108, “1” is subtracted from the “penetrating power” parameterevery time the cutting attack hits an enemy object 103 (e.g. in theprocessing at the step S42), and processing for ending the cuttingattack (i.e. processing when the determination is made as NO at the stepS18) may be executed when the “penetrating power” parameter becomes “0”.For example, as shown in FIG. 34, after the determination is made as YESat the step S18, at a step S51, whether or not the “penetrating power”parameter is “0” is determined. When it is determined that the“penetrating power” parameter is not “0” (NO at the step S51), theprocessing proceeds to the step S12, and when it is determined that the“penetrating power” parameter is “0” (YES at the step S51; i.e. when theabove change amount C does not become equal to or less than the secondpredetermined value but the “penetrating power” parameter becomes “0”),the processing proceeds to the step S19. In addition, a subtractionvalue for the “penetrating power” parameter may be changed depending onthe type of an enemy object 103 and a “defensive strength” parameter setin advance for each enemy object 103. For example, when a cutting attackhits an unarmored enemy A, “1” may be subtracted from the “penetratingpower” parameter, and when a cutting attack hits an armored enemy B, “3”may be subtracted from the “penetrating power” parameter. By doing so,each enemy object 103 can have a characteristic, thereby enhancing thefun of the game.

Further, in the above embodiment, a cutting attack with the sword object104 has been described as one example of an attack manner. However, thepresent invention is not limited thereto, and a striking weapon such asa staff object may be used instead of the sword object 104. In thiscase, similarly as in the case of the sword object 104, the hitprocessing is executed for an enemy object 103 located on the abovecutting attack trajectory. Then, as the above hit effect, an effectsuitable for a striking weapon (e.g. displaying of the enemy object 103being blown out) may be used. Further, a shooting weapon which fires abullet along the above cutting attack trajectory 108 may be used. Inthis case, instead of displaying of the cutting attack trajectory 108 asshown in FIG. 15, a fired bullet may be displayed at a predeterminedconstant interval (e.g. displayed like horizontal sweeping fire), and inthe hit processing, a hit effect such as displaying of a state where thebullet hits an enemy object may be drawn.

Further, regarding the cutting attack start point, in the aboveembodiment, a last pointing coordinate is set as the cutting attackstart point 121. However, the present invention is not limited thereto,and a current pointing coordinate may be set as the cutting attack startpoint 121. Alternatively, the midpoint between the last pointingcoordinate and the current pointing coordinate may be calculated, andthe midpoint may be set as the cutting attack start point 121. Regardingthe cutting attack end point 122, in the above embodiment, the currentpointing coordinate is used. However, the last pointing coordinate maybe set as the cutting attack endpoint 122, or the midpoint between thelast pointing coordinate and the current pointing coordinate may be setas the cutting attack end point 122. In addition, in the case where aplurality of types of weapons are set as described above, regarding thefirst predetermined value and the second predetermined value for settingthe cutting attack start point and the cutting attack end point,different values may be used depending on the type of a weapon. Forexample, a table in which the first predetermined value and the secondpredetermined value is defined for each weapon is prepared in advance,and read into the external main memory 12 when the game processing isexecuted. Then, the table is referred to when the processing of the flowchart shown in FIG. 29 is started, and a first predetermined value and asecond predetermined value both of which correspond to a weapon set as aweapon held by the player object 101 may be obtained and used.

Further, when a cutting attack trajectory is drawn so as to have apredetermined shape, e.g. a circular shape, a triangular shape, and thelike, the determination of collision in the hit determination processingat the step S14 may be made only for a region inside the shape.

Further, in addition to the aforementioned sword-fighting game, thepresent invention is applicable to games other than the sword-fightinggame as long as predetermined processing is executed in the games onlywhen a pointing position is moved at a predetermined speed or faster.For example, the present invention is applicable to a game such as a“quick writing game” (a game to compete for neat and quick handwriting)in which it is possible to write a character only when a cursor is movedat a predetermined speed or faster.

While the invention has been described in detail, the foregoingdescription is in all aspects illustrative and not restrictive. It isunderstood that numerous other modifications and variations can bedevised without departing from the scope of the invention.

What is claimed is:
 1. A non-transitory computer-readable storage mediumstoring a program which is executable by a computer of an imageprocessing apparatus in accordance with data which is transmitted froman operating device used for pointing to a screen as a result ofpointing the operating device at the screen, the program causing thecomputer to execute: determining a first pointing position to which theoperating device points based on data transmitted from the operatingdevice; after a period of time has elapsed, determining a secondpointing position to which the operating device points based on datatransmitted from the operating device; determining whether or not anamount of change between the first pointing position and the secondpointing position in the time period satisfies a first condition; andwhen the amount of change between the first pointing position and thesecond pointing position over the time period satisfies the firstcondition, starting a processing operation in which the first pointingposition is set as a start point of the processing operation.
 2. Thenon-transitory computer-readable storage medium according to claim 1,wherein the program causes the computer to further execute: after theprocessing operation starts, determining whether or not the amount ofchange between the first pointing position and the second pointingposition satisfies a second condition; and when the amount of changebetween the first pointing position and the second pointing positionsatisfies the second condition, ending the processing operation.
 3. Thenon-transitory computer-readable storage medium according to claim 1,wherein the data that is transmitted from the operating device includesimaging information that is obtained by an image capturing deviceassociated with the operating device, the image capturing deviceconfigured to capture an image of at least one target that is locatedadjacent to a display device, and further wherein the program causes thecomputer to determine whether or not the position of the target in ataken image exists in a screen correspondence range which is assigned toa screen of the display device.
 4. The non-transitory computer-readablestorage medium according to claim 3, wherein when the position of thetarget in the taken image exists in the screen correspondence range, andthe amount of change between the first pointing position and the secondpointing position satisfies the first condition, the processingoperation is started.
 5. The non-transitory computer-readable storagemedium according to claim 3, wherein when the position of the target inthe taken image does not exist in the screen correspondence range afterthe processing operation has started, the processing operation is ended.6. The non-transitory computer-readable storage medium according toclaim 2, wherein the program causes the computer to, during a periodafter the processing operation starts and until the processing operationends, draw an object at a position on the screen corresponding to thecalculated first pointing position.
 7. The non-transitorycomputer-readable storage medium according to claim 2, wherein theprogram causes the computer to, during a period after the processingoperation starts but before the processing operation ends, draw atrajectory connecting, in chronological order, the first and secondpointing positions.
 8. The non-transitory computer-readable storagemedium according to claim 1, wherein the program causes the computer tofurther execute: during a period after the processing operation startsbut before the processing operation ends, determining whether or not anobject exists at a position in a virtual space corresponding to thefirst pointing position; and when it is determined that the objectexists at the position in the virtual space corresponding to the firstpointing position, performing hit processing operation for the object.9. The non-transitory computer-readable storage medium according toclaim 8, wherein, when the object exists at the position, changing avalue of a continuation parameter which is a parameter indicative ofwhether or not to continue the processing operation, after theprocessing operation is started, determining whether or not the value ofthe continuation parameter satisfies a third condition, and when thevalue of the continuation parameter satisfies the third condition,ending the processing operation.
 10. An apparatus for executingprocessing based on data which is transmitted from an operating deviceused for pointing to a screen as a result of pointing the operatingdevice at the screen, the apparatus comprising: pointing positiondetermining circuitry for determining a first pointing position to whichthe operating device points based on first data transmitted from theoperating device and then determining a second pointing position towhich the operating device points to based on second data transmittedfrom the operating device after a predetermined period of time; changeamount calculation circuitry for calculating an amount of change betweenthe first pointing position and the second pointing position during thetime period; first determination circuitry for determining whether ornot the amount of change between the first pointing position and thesecond pointing position satisfies a first condition; and processingstart circuitry for, when the first determination circuitry determinesthat the change amount of the pointing position within the time periodsatisfies the first condition, starting a processing operation in whichthe first pointing position is set as a start point for the processingoperation.
 11. A method for executing processing based on imaginginformation which is obtained by imaging circuitry, of an operatingdevice, for taking an image of at least one target and which imaginginformation is transmitted from the operating device, the methodcomprising: determining, with a processor, a first pointing position towhich the operating device points based on a position of the target in afirst taken image; determining, with a processor, a second pointingposition to which the operating device points based on a position of thetarget in a second taken image after a period of time has elapsed;calculating, with the processor, a change amount between the firstpointing position and the second pointing position within the timeperiod; determining whether or not the change amount between the firstpointing position and the second pointing position within the timeperiod satisfies a first condition; and if determined that the changeamount of the pointing position within the time period satisfies thefirst condition, starting a processing operation by the processor inwhich the first pointing position is set as a start point for theprocessing operation.
 12. A system comprising: a processor; at least oneinput device coupled to said processor, the input device including animaging device, where imaging information is transmitted from theoperating device to the processor; a memory coupled to said processor,said memory storing instructions that, when executed by said processor,control said processor to: determine a first pointing position to whichthe operating device points based on a position of at least one targetin a first taken image; determine a second pointing position to whichthe operating device points based on a position of at least one targetin a second taken image after a period of time; calculate whether or notan amount of change between the first pointing position and the secondpointing position over the time period satisfies a first condition; andwhen the calculated amount of change satisfies the first condition,perform a processing operation in which the first pointing position isset as a start point for the processing operation.